總不能一直都在看LED亮來亮去吧!?看久也是會懷疑人生的!所以今天,我們來介紹常用的LCD 1602,他給我們帶來這個獨立的顯示螢幕,好讓我們將結果輸出到螢幕上面成為一個完整的設計。
那為了搭配 I²C使用,我們將會用到 PCF8574作為 I2C的擴展模組連接到 LCD,並用STM32開發板控制,如果還不熟悉 I²C的朋友們上一篇我們介紹了[Day 18]-【STM32系列】IC之間常用的通訊協定 I²C,可以先去看看再來。
PCF8574具有 4個 pinout,從上到下依序為 GND,VCC,SDA,SCL和 16個 pinout。我們將 LCD連接到這 16個 pinout,我們就可以透過控制 SDA、SCL兩條線輸出 LCD。
所以我們是這樣,要讓 LCD顯示文字前必須先送 I²C給 PCF8574,他就負責為我們跟 LCD座溝通的橋樑,首先要送甚麼給 PCF8574呢? I²C的每一筆資料都是8bit,第一組資料就是先送地址,送完再送資料。就好比郵差要送信,要先告訴郵差要送去哪裡,在告訴他送甚麼信。同樣的我們同一條 I²C線上可能連接兩個不同的 LCD,所以不能有人有同樣的門牌號碼,上一篇也有提及理論上我們可以在同一條 I2C線上連接多達 128個設備(但通常10個就很多了)。總之我們不能讓兩個 PCF8574具有相同的地址,我們需要修改其中之一。
PCF8574 預設的地址是0 1 0 0 A2 A1 A0 R/W。
高四位0100是預設不會變,所以我們能改的就是低四位的A2 A1 A0 R/W
如上圖所示, PCF8574提供 A2 A1 A0 pinout供我們修改,地址的最低位可供read(1)/ write(0)操作,這裡我們均保持為 write(0)。在默認的情況下A2 A1 A0皆為高電平,所以地址將會是01001110,即0x4E。
如果更改設備的新位置,假設將A0接地,則新位置將為01001100,即0x4C。
所以這裡最多可以同時連接8個LCD到同一條線上。
關於PCF8574 Addressing 如下表:
0100 | A2 | A1 | A0 | 0(W) | Addressing Pins
------------- | ------------- | ------------- | -------------
0100 | 0 | 0 | 0 | 0 | 0x40
0100 | 0 | 0 | 1 | 0 | 0x42
0100 | 0 | 1 | 0 | 0 | 0x44
0100 | 0 | 1 | 1 | 0 | 0x46
0100 | 1 | 0 | 0 | 0 | 0x48
0100 | 1 | 0 | 1 | 0 | 0x4A
0100 | 1 | 1 | 0 | 0 | 0x4C
0100 | 1 | 1 | 1 | 0 | 0x4E
將共同的VCC和GND接上,其餘我們需要LCD接至PCF8574
4-> RS-> p0
5-> R / W-> p1
6-> En-> p2
11-> DB4-> p4
12-> DB5-> p5
13-> DB6-> p6
14-> DB7-> p7
PCF8574接至STM32
PB6(SCL)->SCL
PB7(SDA)->SDA
跟往常一樣設定RCC -> HSE、LSE為Crystal/Ceramic Resonator
SYS -> Debug Serial Wire 打勾
到了這裡我們選擇I2C1 -> I2C 預設pinout會是PB6(SCL),PB7(SDA)。
頻率直接給他最大下去了啦
生成檔案
- STM32 Nucleo-64 boards (MB1136)資料手冊
https://www.st.com/resource/en/user_manual/dm00105823-stm32-nucleo-64-boards-mb1136-stmicroelectronics.pdf- STM32L053R8 datasheet
https://www.st.com/resource/en/datasheet/stm32l053r8.pdf- RM0367 Reference manual Ultra-low-power STM32L0x3 advanced Arm®-based 32-bit MCUs
https://www.st.com/resource/en/reference_manual/dm00095744-ultra-low-power-stm32l0x3-advanced-arm-based-32-bit-mcus-stmicroelectronics.pdf- ARM Mbed官網介紹 - NUCLEO-L053R8
https://os.mbed.com/platforms/ST-Nucleo-L053R8/- STM32 官網介紹 - STM32L053R8
https://www.st.com/en/microcontrollers-microprocessors/stm32l053r8.html#overview
- 此開發板售價在臺幣1000元以下,讀者可於以下網站購得:
https://www.mouser.tw/
https://www.digikey.tw/
就在我上傳只剩5分鐘
我準備要上傳時竟然跳出下面這個阿!
好在最後發現原來是我上傳的第一張圖片拿掉後就正常了
後面重新上傳圖片也就沒問題
到底為甚麼上傳的圖片會有甚麼禁止字元啦
哈哈~
不好笑啦
要是再晚個2 3分鐘
我就喪失鐵人資格了
竟然給我再發布文章前出這種trouble
差點沒給我嚇死